pub fn dp_rec_mc(amount: u32) -> u32 {
    let denominations = [100, 50, 30, 20, 10, 5, 2, 1]; // 定义纸币面值从大到小排序
    let mut remaining_amount = amount;
    let mut count = 0;
    let mut used_notes = Vec::new();

    for &denomination in &denominations {
        if remaining_amount == 0 {
            break;
        }

        let num_notes = remaining_amount / denomination; // 计算当前面值纸币数量
        if num_notes > 0 {
            used_notes.push((denomination, num_notes)); // 记录纸币面值和数量
            count += num_notes;
            remaining_amount %= denomination; // 更新剩余金额
        }
    }

    count
}
